package com.fowo.api.model.sell.order.detail;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单列表详情 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SellOrderDetailImportPo {

  /** 所属销售订单 */
  @ExcelProperty("所属销售订单")
  @Size(max = 50, message = "所属销售订单长度不能超过50")
  private String parentIdAmazonOrderId;

  @ExcelIgnore
  @Schema(title = "所属销售订单")
  private String parentId;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 5000, message = "标题长度不能超过5000")
  private String title;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** asin链接 */
  @ExcelProperty("asin链接")
  @Size(max = 50, message = "asin链接长度不能超过50")
  private String asinUrl;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String sellerSku;

  /** 商品编码 */
  @ExcelProperty("商品编码")
  @Size(max = 50, message = "商品编码长度不能超过50")
  private String orderItemId;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 50, message = "品名长度不能超过50")
  private String productName;

  /** 本地产品 */
  @ExcelProperty("本地产品")
  @Size(max = 500, message = "本地产品长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "本地产品")
  private String productId;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 单价 */
  @ExcelProperty("单价")
  @DecimalString(message = "单价小数格式不正确", label = "单价")
  private String unitPriceAmount;

  /** 数量 */
  @ExcelProperty("数量")
  @IntegerString(message = "数量数值格式不正确", label = "数量", min = 0)
  private String quantityOrdered;

  /** 已配送 */
  @ExcelProperty("已配送")
  @IntegerString(message = "已配送数值格式不正确", label = "已配送", min = 0)
  private String quantityShipped;

  /** 销售收益 */
  @ExcelProperty("销售收益")
  @DecimalString(message = "销售收益小数格式不正确", label = "销售收益")
  private String salesPriceAmount;

  /** 积分成本 */
  @ExcelProperty("积分成本")
  @DecimalString(message = "积分成本小数格式不正确", label = "积分成本")
  private String pointsMonetaryValueAmount;

  /** 税费 */
  @ExcelProperty("税费")
  @DecimalString(message = "税费小数格式不正确", label = "税费")
  private String taxAmount;

  /** 采购成本 */
  @ExcelProperty("采购成本")
  @DecimalString(message = "采购成本小数格式不正确", label = "采购成本")
  private String cgPrice;

  /** 头程费用 */
  @ExcelProperty("头程费用")
  @DecimalString(message = "头程费用小数格式不正确", label = "头程费用")
  private String cgTransportCosts;

  /** FBA发货费 */
  @ExcelProperty("FBA发货费")
  @DecimalString(message = "FBA发货费小数格式不正确", label = "FBA发货费")
  private String fbaShipmentAmount;

  /** 促销费 */
  @ExcelProperty("促销费")
  @DecimalString(message = "促销费小数格式不正确", label = "促销费")
  private String promotionAmount;

  /** 商品促销编号 */
  @ExcelProperty("商品促销编号")
  @Size(max = 50, message = "商品促销编号长度不能超过50")
  private String promotionIds;

  /** 平台费 */
  @ExcelProperty("平台费")
  @DecimalString(message = "平台费小数格式不正确", label = "平台费")
  private String commissionAmount;

  /** 其他费 */
  @ExcelProperty("其他费")
  @DecimalString(message = "其他费小数格式不正确", label = "其他费")
  private String feeCostAmount;

  /** 其他费用 */
  @ExcelProperty("其他费用")
  @DecimalString(message = "其他费用小数格式不正确", label = "其他费用")
  private String otherAmount;

  /** 毛利润 */
  @ExcelProperty("毛利润")
  @DecimalString(message = "毛利润小数格式不正确", label = "毛利润")
  private String profit;

  /** 商品支付金额（删除） */
  @ExcelProperty("商品支付金额（删除）")
  @DecimalString(
    message = "商品支付金额（删除）小数格式不正确",
    label = "商品支付金额（删除）"
  )
  private String itemPriceAmount;

  /** 商品税（删除） */
  @ExcelProperty("商品税（删除）")
  @DecimalString(
    message = "商品税（删除）小数格式不正确",
    label = "商品税（删除）"
  )
  private String itemTaxAmount;

  /** 商品运费 */
  @ExcelProperty("商品运费")
  @DecimalString(message = "商品运费小数格式不正确", label = "商品运费")
  private String shippingPriceAmount;

  /** 商品运费税 */
  @ExcelProperty("商品运费税")
  @DecimalString(message = "商品运费税小数格式不正确", label = "商品运费税")
  private String shippingTaxAmount;

  /** 礼品包装费 */
  @ExcelProperty("礼品包装费")
  @DecimalString(message = "礼品包装费小数格式不正确", label = "礼品包装费")
  private String giftWrapPriceAmount;

  /** 礼品包装税 */
  @ExcelProperty("礼品包装税")
  @DecimalString(message = "礼品包装税小数格式不正确", label = "礼品包装税")
  private String giftWrapTaxAmount;

  /** 配送折扣 */
  @ExcelProperty("配送折扣")
  @DecimalString(message = "配送折扣小数格式不正确", label = "配送折扣")
  private String shippingDiscountAmount;

  /** COD服务费用 */
  @ExcelProperty("COD服务费用")
  @DecimalString(message = "COD服务费用小数格式不正确", label = "COD服务费用")
  private String codFeeAmount;

  /** 配送折扣税 */
  @ExcelProperty("配送折扣税")
  @DecimalString(message = "配送折扣税小数格式不正确", label = "配送折扣税")
  private String shippingDiscountTaxAmount;

  /** 商品促销折扣 */
  @ExcelProperty("商品促销折扣")
  @DecimalString(message = "商品促销折扣小数格式不正确", label = "商品促销折扣")
  private String promotionDiscountAmount;

  /** 商品促销折扣税 */
  @ExcelProperty("商品促销折扣税")
  @DecimalString(
    message = "商品促销折扣税小数格式不正确",
    label = "商品促销折扣税"
  )
  private String promotionDiscountTaxAmount;

  /** COD服务费用折扣 */
  @ExcelProperty("COD服务费用折扣")
  @DecimalString(
    message = "COD服务费用折扣小数格式不正确",
    label = "COD服务费用折扣"
  )
  private String codFeeDiscountAmount;

  /** 礼品信息（买家提供） */
  @ExcelProperty("礼品信息（买家提供）")
  @Size(max = 50, message = "礼品信息（买家提供）长度不能超过50")
  private String giftMessageText;

  /** 礼品包装级别（买家提供） */
  @ExcelProperty("礼品包装级别（买家提供）")
  @Size(max = 50, message = "礼品包装级别（买家提供）长度不能超过50")
  private String giftWrapLevel;

  /** 商品状况说明（卖家提供） */
  @ExcelProperty("商品状况说明（卖家提供）")
  @Size(max = 50, message = "商品状况说明（卖家提供）长度不能超过50")
  private String conditionNote;

  /** 商品状况（卖家提供） */
  @ExcelProperty("商品状况（卖家提供）")
  @Size(max = 50, message = "商品状况（卖家提供）长度不能超过50")
  private String conditionId;

  /** 商品子状况（卖家提供） */
  @ExcelProperty("商品子状况（卖家提供）")
  @Size(max = 50, message = "商品子状况（卖家提供）长度不能超过50")
  private String conditionSubtypeId;

  /** 计划交货开始日期 */
  @ExcelProperty("计划交货开始日期")
  @DateString(message = "计划交货开始日期不是有效的日期格式")
  private String scheduledDeliveryStartDate;

  /** 计划交货结束日期 */
  @ExcelProperty("计划交货结束日期")
  @DateString(message = "计划交货结束日期不是有效的日期格式")
  private String scheduledDeliveryEndDate;

  /** B2B价格 */
  @ExcelProperty("B2B价格")
  @Size(max = 50, message = "B2B价格长度不能超过50")
  private String priceDesignation;

  /** 其他费名称 */
  @ExcelProperty("其他费名称")
  @Size(max = 50, message = "其他费名称长度不能超过50")
  private String feeName;

  /** 其他费币种 */
  @ExcelProperty("其他费币种")
  @Size(max = 50, message = "其他费币种长度不能超过50")
  private String feeCurrency;

  /** 其他费币种符号 */
  @ExcelProperty("其他费币种符号")
  @Size(max = 50, message = "其他费币种符号长度不能超过50")
  private String feeIcon;

  /** 其他费金额 */
  @ExcelProperty("其他费金额")
  @DecimalString(message = "其他费金额小数格式不正确", label = "其他费金额")
  private String feeCost;

  /** 商品折扣 */
  @ExcelProperty("商品折扣")
  @DecimalString(message = "商品折扣小数格式不正确", label = "商品折扣")
  private String itemDiscount;

  /** 订单号 */
  @ExcelProperty("订单号")
  @Size(max = 50, message = "订单号长度不能超过50")
  private String amazonOrderId;
}
